#ifndef __CINETIC__OGRE_REPRESENTATION_H__
#define __CINETIC__OGRE_REPRESENTATION_H__
#pragma once

#include "GraphicsComponent.h"
#include "Representation.h"

#include "Ogre.h"

namespace Cinetic
{
	class GraphicsRepresentation : public Representation
	{
	public:
		GraphicsRepresentation( std::shared_ptr<GraphicsComponent> g, Ogre::SceneManager* mgr );
        virtual ~GraphicsRepresentation();

	public:
		void				on_mesh_changed( const Ogre::String& mesh );

	private:
		//Entity and node that are used by Ogre to render the node that this representation
		Ogre::SceneNode*	                    m_scene_node;
		Ogre::Entity*		                    m_entity;
        Ogre::SceneManager*                     m_manager;
        GraphicsComponent::MeshChangedDelegate  m_mesh_changed_callback;
	};
}

#endif